PostgreSQL pg_profile 报告
1 背景知识
pg_profile 有两种报告:
- 常规报告,包含报告期间的示例工作负载的统计信息。可以使用 get_report 函数快照生成报告。
- 差异报告,包含两个区间的数据,用于比较两个区间的对象统计值。可以使用 get_diffreport 函数快照生成报告。
2 性能测试
完成 PostgreSQL BenchMarksql 6.0 性能测试 。并生成报告。
3 查看快照列表
查看快照列表确定需要报告的生成区间。
SELECT profile.show_samples('omega');
SELECT profile.show_samples('local');
4 常规报告生成
- 使用
local
本地服务器的快照 ID665
和714
生成常规报告。
psql -U postgres -d testdb -Aqtc "SELECT profile.get_report(665,714)" -o report_local_Last24h_665_714.html
- 指定
omega
远程服务器的快照 ID59
和60
生成常规报告。
psql -U postgres -d testdb -Aqtc "SELECT profile.get_report('omega',334,388)" -o report_omega_Last24h_334_388.html
- 指定
omega
远程服务器的快照时间在2024-06-28 23:51:35+03
和2024-06-29 00:52:18+03
生成常规报告。
psql -U postgres -d testdb -Aqtc "select profile.get_report('omega',tstzrange('2024-07-04 09:00:01+08','2024-07-05 09:00:01+08'))" -o report_omega_070409_070509.html
- 指定
omega
远程服务器的快照时间在过去24H
之内的时间范围,生成常规报告。
psql -U postgres -d testdb -Aqtc "select profile.get_report('omega',tstzrange(now() - interval '1 day',now()))" -o report_omega_last24h.html
Note
这里是一个常规报告的示例,请点击查看。
[[report_local_Last24h_665_714.html]]
[[report_omega_Last24h_334_388.html]]
[[report_omega_070409_070509.html]]
[[report_omega_last24h.html]]
5 差异报告生成
5.1 指定快照 ID
生成差异报告
- 使用
318
和326
作为第一个区间,使用372
和380
作为第二个区间。生成差异报告
psql -U postgres -d testdb -Aqtc "SELECT profile.get_diffreport('omega', 318, 326, 372, 380)" -o report_diff_omega_0704_0705_range_01:00_05:00.html
5.2 指定基线名称生成差异报告
- 创建
7月04日 01:00-05:00
时间区间 的基线。
SELECT profile.drop_baselinename,'omega_318_326';
SELECT profile.create_baselinename,'omega_318_326',318,326;
- 创建
7月05日 01:00-05:00
时间区间的基线。
SELECT profile.drop_baselinename,'omega_372_380';
SELECT profile.create_baselinename,'omega_372_380',372,380;
- 查看已创建的基线。
SELECT profile.show_baselinesname;
show_baselines
--------------------------
(omega_318_326,318,326,)
(omega_372_380,372,380,)
(2 rows)
更多生成差异报告的方式请见 pg_profile 的基线。
- 使用
omega_06_28_15
基线作为第一个区间,使用omega_06_29_15
作为第二个区间。生成差异报告。
psql -U postgres -d testdb -Aqtc "SELECT profile.get_diffreportname,'omega_318_326','omega_372_380'" -o report_diff_baseline_omega_0704_0705_01:00_05:00.html
Note
这里是一些差异报告的示例。
[[report_diff_omega_0704_0705_range_01_00_05_00 1.html]]
[[report_diff_baseline_omega_0704_0705_01_00_05_00.html]]
更多生成差异报告的方式请见 get_diffreport 函数。